iT邦幫忙

2023 iThome 鐵人賽

DAY 7
1
Modern Web

那些你可能要知道的前端知識系列 第 7

【day7】Array陣列的遍歷方法(map, filter, every, some)

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230910/20148303eRku3jZYPv.png

array.map

對陣列中的每個元素進行操作並返回一個的陣列。
新的陣列是由對原始陣列中的每個元素調用一個函式所得到的結果組成的。

const array1 = [1, 2, 3]
const array2 = array1.map(item => item * 2)

console.log(array2) // 輸出 [2, 4, 6]

console.log(array1) // 輸出 [1, 2, 3] => 不會改變原陣列

上方程式碼範例將array1透過array.map的方式便利陣列元素,並將元素乘2,返回array2為新的陣列

array.filter

從原始的陣列中篩選出符合條件的元素,返回一個的陣列,新的陣列只包含返回 true 的元素。

const array1 = [1, 15, 40, 22]
const array2 = array1.filter(item => item > 20)

console.log(array2) // 輸出 [40, 22]

console.log(array1) // 輸出 [1, 15, 40, 22] => 不會改變原陣列

上方範例中使用array.flter()的方式過濾出大於20的元素,並產生了一個新的array2的陣列

array.every

檢查原始陣列中的每一個元素是不是都有符合條件,如果全部都符合會回傳true有一個元素不符合,就會回傳false

const array1 = [2, 4, 6, 8, 10];
const array2 = array1.every(num => num % 2 === 0);
console.log(array2) // 輸出 true

console.log(array1) // 輸出 [2, 4, 6, 8, 10] => 不會改變原陣列

檢查原始陣列中的每一個元素是否都是偶數,結果是ture

array.some

檢查原始陣列中是否至少一個元素有符合條件,如果有則返回true,否則返回false

const array1 = [1, 3, 5, 8, 10];
const array2 = array1.some(num => num % 2 === 0);
console.log(array2) // 輸出 true

console.log(array1) // 輸出 [1, 3, 5, 8, 10] => 不會改變原陣列

上方範例使用array.some的方式遍歷array1檢查是否有至少一個元素符合偶數,陣列中的810符合條件,因此在array2返回true

array.every 和 array.some

every()some(),它們不一定會遍歷陣列的所有元素。
例如:

  • some(),如果找到一個 true 的元素,它會馬上停止遍歷
  • every(),如果找到一個 false 的元素,它也會馬上停止遍歷

上一篇
【day6】function declaration 、 function expression 差別
下一篇
【day8】Array陣列的遍歷方法(for...loop, for...of, for...in, forEach)
系列文
那些你可能要知道的前端知識30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言